package calculatorEngine;

import java.io.Console;
import java.io.File;
import java.util.ArrayList;
import java.util.List;

import javax.swing.DebugGraphics;

//Pawel, 28.11.2013, 21:00
//zamiast klasy Variables

public class PlaneProfile {
		
	//nazwa samolotu
	private String name;
	
	//ilosc rzedow pojedynczych siedzien
	private int seatRows;
	
	//ilosc kolumn pojedynczych siedzien, korytarz miedzy siedzeniami liczy sie jako kolumna siedzen
	private int seatColumns;
	
	// (jak mniemam) nr rzedu siedzen, w ktorym powinien byc srodek ciezkosci
	private int optimalWeightCenter;
	
	private SeatConfiguration testowaKonfiguracja;
	
	public PlaneProfile(File profileFile) {
		
		//wczytac z pliku pola klasy, albo cos :)
		
	}
	
	//dodatkowy constructor, jakby komus sie zachcialo w ten sposob :)
	public PlaneProfile(String name, int seatRows, int seatColumns, int optimalWeightCenter) {
		
		this.name = name;
		this.seatRows = seatRows;
		this.seatColumns = seatColumns;
		this.optimalWeightCenter = optimalWeightCenter;
		
		testowaKonfiguracja = new SeatConfiguration(seatColumns, seatRows);
		
		testowaKonfiguracja.seatIsTaken(1, 1);
		testowaKonfiguracja.seatIsTaken(1, 2);
		testowaKonfiguracja.seatIsTaken(1, 3);
		testowaKonfiguracja.seatIsTaken(1, 4);
		testowaKonfiguracja.seatIsTaken(1, 5);
		
		testowaKonfiguracja.seatIsTaken(3, 1);
		testowaKonfiguracja.seatIsTaken(3, 2);
		testowaKonfiguracja.seatIsTaken(3, 3);
		
	}
	
	public double[] getWeightCenterPosition(List<Seat> siedzenia) {
		
		int wspolrzedna_ostatniej_kolumny = seatColumns -1;
		int wspolrzedna_ostatniego_rzedu = seatRows -1;
		
		//przesuniecie x
		double przesuniecie_kolumny = 0;
		
		//przesuniecie y
		double przesuniecie_rzedu = 0;
		
		//zaklada sie, ze srodek ciezkosci jest w srodku wskazanego rzedu, numeruje sie rzedy po ludzku, od indexu 1
		int rzad_centralny = optimalWeightCenter -1;
		
		if (Utils.jestParzysta(seatColumns)) {
			
			//ilosc_kolumn - parzysta, ilosc_rzedow - parzysta
			if (Utils.jestParzysta(seatRows)) {
				
				for (int i_kolumny = 0; i_kolumny <= wspolrzedna_ostatniej_kolumny /2; i_kolumny++) {
					
					for (int i_rzedu = 0; i_rzedu <= wspolrzedna_ostatniego_rzedu; i_rzedu++) {
						
						if (testowaKonfiguracja.getSeatsArray()[i_kolumny][i_rzedu].getSeat().getStatus() == Seat.TAKEN) {
							
							przesuniecie_kolumny += i_kolumny - wspolrzedna_ostatniej_kolumny /2;
							
						}
						
					}
					
				}
				
				for (int i_kolumny = wspolrzedna_ostatniej_kolumny /2; i_kolumny <= wspolrzedna_ostatniej_kolumny; i_kolumny++) {
					
					for (int i_rzedu = 0; i_rzedu <= wspolrzedna_ostatniego_rzedu; i_rzedu++) {
						
						if (testowaKonfiguracja.getSeatsArray()[i_kolumny][i_rzedu].getSeat().getStatus() == Seat.TAKEN) {
							
							przesuniecie_kolumny += i_kolumny - wspolrzedna_ostatniej_kolumny /2;
							
						}
						
					}
					
				}
				
				for (int i_rzedu = 0; i_rzedu <= wspolrzedna_ostatniego_rzedu /2; i_rzedu++) {
					
					for (int i_kolumny = 0; i_kolumny <= wspolrzedna_ostatniej_kolumny; i_kolumny++) {
						
						if (testowaKonfiguracja.getSeatsArray()[i_kolumny][i_rzedu].getSeat().getStatus() == Seat.TAKEN) {
							
							przesuniecie_rzedu += i_rzedu - wspolrzedna_ostatniego_rzedu /2;
							
						}
						
					}
					
				}
				
				for (int i_rzedu = wspolrzedna_ostatniego_rzedu /2; i_rzedu <= wspolrzedna_ostatniego_rzedu; i_rzedu++) {
					
					for (int i_kolumny = 0; i_kolumny <= wspolrzedna_ostatniej_kolumny; i_kolumny++) {
						
						if (testowaKonfiguracja.getSeatsArray()[i_kolumny][i_rzedu].getSeat().getStatus() == Seat.TAKEN) {
							
							przesuniecie_rzedu += i_rzedu - wspolrzedna_ostatniego_rzedu /2;
							
						}
						
					}
					
				}
				
				System.out.println(Double.toString(przesuniecie_kolumny));
				System.out.println(Double.toString(przesuniecie_rzedu));
				System.out.println(testowaKonfiguracja.getSeatsArray().length);
				System.out.println(testowaKonfiguracja.getSeatsArray()[0].length);
				System.out.println(Boolean.toString(Utils.jestParzysta(6)));
				
			}
			
			//ilosc_kolumn - parzysta, ilosc_rzedow - nieparzysta
			else {
				
				
				
			}
			
		}
		
		return new double[] { 2.01, 2.01};
		
	}
	
	public void podajWywazenie() {
		
		int wspolrzedna_ostatniej_kolumny = seatColumns -1;
		int wspolrzedna_ostatniego_rzedu = seatRows -1;
		
		ArrayList<Seat> miejsca_zajete = new ArrayList<Seat>();
		
		for (int iC = 0; iC < seatColumns; iC++) {
			
			for (int iR = 0; iR < seatRows; iR++) {
				
				
				
			if (testowaKonfiguracja.getSeatsArray()[seatColumns][seatRows].getSeat().getStatus() == Seat.TAKEN) {
				
				miejsca_zajete.add(testowaKonfiguracja.getSeatsArray()[seatColumns][seatRows].getSeat());
				
			}
			
		}
		
	}

}
}